﻿<Serializable()> Public Class GebäudeSchwarze_Geschütz_S
    Inherits ObjektGebäude

    Public Sub New(ByVal neuSpieler As Integer, ByVal neuX As Integer, ByVal neuY As Integer, ByVal Spielfeld As ObjektSpielfeld)
        MyBase.New("SCHWARZE GESCHÜTZ+S", neuSpieler, neuX, neuY, ObjektSpielfeld.Bodenschlacht)
        GebäudeLaden()
        getBildID(Spielfeld)
    End Sub
    Public Sub New(ByVal neuSpieler As Integer, ByVal neuLeben As Integer, ByVal neuBesetzungszahl As Integer, ByVal neuX As Integer, ByVal neuY As Integer, ByVal Feuerzahl As Integer, ByVal Spielfeld As ObjektSpielfeld)
        MyBase.New("SCHWARZE GESCHÜTZ+S", neuSpieler, neuLeben, neuBesetzungszahl, neuX, neuY, Feuerzahl, ObjektSpielfeld.Bodenschlacht)
        GebäudeLaden()
        getBildID(Spielfeld)
    End Sub
    Public Sub New()
        MyBase.New("", -1, -1, -1, ObjektSpielfeld.Bodenschlacht)
        Gebäudename = "Schwarze Geschütz"
        getFonds = False
        Deckung = 0
        Bestzunge = -1
        Schaden = 5
        Reichweite = 10
        Rechteck.Height = Hauptmenü.Feldbreite * 3
        Rechteck.Width = Hauptmenü.Feldbreite * 3
        Angriff = Angriffe.SchussS
        Select Case My.Settings.CommanderWarsGameMoodus
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.CommanderWars
                Leben = 500
            Case Else
                Leben = 99
        End Select
        Feuerbereite = -1
        Feuerladung = 1
        RotationsZenturm = New Point(Hauptmenü.Feldbreite * 3 / 2, Hauptmenü.Feldbreite * 3 / 2)
        WirdZu = "EBENE+SCHROTT"
        Verweisgebäude = New Integer(,) {{-1, -1}, {-1, 0}, {1, -1}, {0, -1}, {0, 1}, {1, 0}, {1, 1}, {-1, 1}}
    End Sub

    Private Sub GebäudeLaden()
        Gebäudename = "Schwarze Geschütz"
        getFonds = False
        Deckung = 0
        Bestzunge = -1
        Schaden = 5
        Reichweite = 10
        Rechteck.Height = Hauptmenü.Feldbreite * 3
        Rechteck.Width = Hauptmenü.Feldbreite * 3
        Angriff = Angriffe.SchussS
        Select Case My.Settings.CommanderWarsGameMoodus
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.CommanderWars
                Leben = 500
            Case Else
                Leben = 99
        End Select
        Feuerbereite = 1
        Feuerladung = 1
        RotationsZenturm = New Point(Hauptmenü.Feldbreite * 3 / 2, Hauptmenü.Feldbreite * 3 / 2)
        WirdZu = "EBENE+SCHROTT"
        Verweisgebäude = New Integer(,) {{-1, -1}, {-1, 0}, {1, -1}, {0, -1}, {0, 1}, {1, 0}, {1, 1}, {-1, 1}}
        For I = 0 To Verweisgebäude.GetLength(0) - 1
            If Not Objektverwalter.Spielfeld Is Nothing Then
                Objektverwalter.Spielfeld.Landschaften(Rechteck.X + Verweisgebäude(I, 0), Rechteck.Y + Verweisgebäude(I, 1), ObjektSpielfeld.Bodenschlacht).Gebäude = New GebäudeVerweis(Spieler, Rechteck.X, Rechteck.Y, ObjektSpielfeld.Bodenschlacht)
            End If
        Next
    End Sub
    Public Overrides Function GetMaxLeben() As Integer
        Select Case My.Settings.CommanderWarsGameMoodus
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.CommanderWars
                If KP > 500 Then Return KP
                Return 500
            Case Else
                If KP > 99 Then Return KP
                Return 99
        End Select
    End Function
    Public Overrides Sub Feuer(ByVal X As Integer, ByVal Y As Integer)
        GenerateNetzBefehlGebäudeFeuer(X, Y)
        DoDamage(X, Y)
        BackbufferSpiel.AddAnimation("Geschützfeuer", 2, New Point(X, Y), True, ObjektSpielfeld.Bodenschlacht)
        Feuerbereit = -1
        Objektverwalter.Spielfeld.Regeln.CheckSieg()
        Dim M As ObjektSpielMenü = Objektverwalter.Menü
        M.Spielmodus = ObjektSpielMenü.Spielmodi.Nichts
    End Sub
    Public Overrides Sub FeuerradiusAnzeigen()
        Geschützfeuermarkieren()
      MusikEngine.LoadWav(My.Settings.Resourcenpfad + "Sound\Einheitausgewählt.wav", False)
        Dim M As ObjektSpielMenü = Objektverwalter.Menü
        M.Spielmodus = ObjektSpielMenü.Spielmodi.FeuerradiusAnzeigen
    End Sub
    Public Overrides Sub DOSpielFrame()
        Feuerbereit = 1
    End Sub
    Public Overrides Function GetLandschaftsuntergrund() As String()
        Return New String() {"EBENE", "SCHNEE", "WÜSTE", "EBENE+SCHROTT"}
    End Function
    Public Overrides Function GetAngriffsFelder() As System.Drawing.Point()
        Return GetGeschützfeuer()
    End Function
End Class
